const sqlite3 = require('sqlite3').verbose()
const path = require('path')

const dbPath = path.join(__dirname, 'novel.db')
const db = new sqlite3.Database(dbPath)

console.log('检查数据库表结构...')

// 检查users表结构
db.all('PRAGMA table_info(users)', (err, rows) => {
  if (err) {
    console.error('检查users表失败:', err)
    return
  }

  console.log('\nusers表字段:')
  rows.forEach(row => {
    console.log(`${row.name} (${row.type})`)
  })

  // 检查是否有coins字段
  const hasCoins = rows.some(row => row.name === 'coins')
  const hasCoinBalance = rows.some(row => row.name === 'coin_balance')

  console.log(`\n字段检查:`)
  console.log(`- coins字段: ${hasCoins ? '存在' : '不存在'}`)
  console.log(`- coin_balance字段: ${hasCoinBalance ? '存在' : '不存在'}`)

  if (!hasCoins && hasCoinBalance) {
    console.log('\n需要重命名字段 coin_balance -> coins')
    db.run('ALTER TABLE users RENAME COLUMN coin_balance TO coins', err => {
      if (err) {
        console.error('重命名字段失败:', err)
      } else {
        console.log('字段重命名成功!')
      }
      db.close()
    })
  } else if (!hasCoins && !hasCoinBalance) {
    console.log('\n需要添加coins字段')
    db.run('ALTER TABLE users ADD COLUMN coins INTEGER DEFAULT 0', err => {
      if (err) {
        console.error('添加字段失败:', err)
      } else {
        console.log('coins字段添加成功!')
      }
      db.close()
    })
  } else {
    console.log('\n数据库字段正常')
    db.close()
  }
})
